package com.example.rabc.factory;

import java.util.Properties;

/**
 * 工厂配置管理类
 * 负责读取配置文件并创建相应的工厂实例
 */
public class DaoFactoryManager {
    private static DaoFactory factory = null;
    
    // 私有构造函数，防止实例化
    private DaoFactoryManager() {}
    
    /**
     * 根据配置获取DAO工厂实例
     * @return DaoFactory实例
     */
    public static synchronized DaoFactory getDaoFactory() {
        if (factory == null) {
            // 在实际应用中，这里会读取配置文件来决定创建哪种工厂
            // 目前我们默认使用MySQL工厂
            factory = new MySqlDaoFactory();
        }
        return factory;
    }
    
    /**
     * 根据数据库类型设置DAO工厂
     * @param dbType 数据库类型 ("mysql" 或 "postgresql")
     */
    public static synchronized void setDaoFactory(String dbType) {
        if ("postgresql".equalsIgnoreCase(dbType)) {
            factory = new PostgreSqlDaoFactory();
        } else {
            factory = new MySqlDaoFactory();
        }
    }
}